/**
* 公司信息
*/
<template>
  <div>
    <!-- 面包屑导航 -->
    <el-breadcrumb separator-class="el-icon-arrow-right">
      <el-breadcrumb-item :to="{ path: '/' }">首页</el-breadcrumb-item>
      <el-breadcrumb-item>求职类型管理</el-breadcrumb-item>
    </el-breadcrumb>
    <!-- 搜索筛选 -->
    <el-form :inline="true" :model="formInline" class="user-search">
      <el-form-item label="搜索：">
<!--        输入公司名字，公司账号，公司曾用名-->
        <el-input size="small" v-model="formInline.companyName" placeholder="输入公司信息"></el-input>
      </el-form-item>
        <el-form-item>  <div class="block">
          <span class="demonstration">默认</span>
          <el-date-picker
            v-model="formInline.value1"
            type="datetimerange"
            range-separator="至"
            start-placeholder="开始日期"
            end-placeholder="结束日期"
            value-format="yyyy-MM-dd"

          >
          </el-date-picker>
        </div></el-form-item>
      <el-form-item>
        <el-button size="small" type="primary" icon="el-icon-search" @click="search">搜索</el-button>
      </el-form-item>
    </el-form>
    <!--列表-->
    <el-table size="small" :data="listData" highlight-current-row v-loading="loading" border element-loading-text="拼命加载中" style="width: 100%;">
      <el-table-column align="center" type="selection" width="60">
      </el-table-column>
      <el-table-column sortable align="center" prop="id" label="ID" width="100">
      </el-table-column>
      <el-table-column sortable align="center" prop="companyName" label="公司名称" width="200">
      </el-table-column>
      <el-table-column sortable align="center" prop="companyAccount" label="公司账号" width="200">
      </el-table-column>
      <el-table-column sortable align="center" prop="contactPerson" label="公司负责人" width="150">
      </el-table-column>
      <el-table-column sortable align="center" prop="contactPersonTel" label="公司负责人电话" width="150">
      </el-table-column>
      <el-table-column sortable align="center" prop="companyEmail" label="公司邮箱" width="200">
      </el-table-column>
      <el-table-column sortable align="center" prop="companyRegisterTime" label="注册时间" width="200">
      </el-table-column>
      <el-table-column sortable align="center" prop="contractExpirationDate" label="与官方合作时间" width="200">
      </el-table-column>
      <el-table-column sortable align="center" prop="address.center" label="中心坐标" width="250">
      </el-table-column>
      <el-table-column sortable align="center" prop="address.title" label="地区" width="150">
      </el-table-column>
      <el-table-column sortable align="center" prop="detailsaAddress" label="详细地址" width="200">
      </el-table-column>
      <el-table-column sortable align="center" prop="companyTel" label="公司电话" width="150">
      </el-table-column>
      <el-table-column sortable align="center" prop="companyCode" label="企业编码" width="150">
      </el-table-column>
      <el-table-column sortable align="center" prop="companyPic" label="公司logo" width="300">
      </el-table-column>
      <el-table-column sortable align="center" prop="companyScale.title" label="公司规模" width="200">
      </el-table-column>
      <el-table-column sortable align="center" prop="developmentTrend" label="人才发展趋向" width="200">
      </el-table-column>

      <el-table-column sortable align="center" prop="firmName" label="企业名称" width="200">
      </el-table-column>
      <el-table-column sortable align="center" prop="legalRepresentative" label="法定代表人" width="200">
      </el-table-column>
      <el-table-column sortable align="center" prop="companyType.title" label="公司行业类型" width="200">
      </el-table-column>

      <el-table-column sortable align="center" prop="setUpTime" label="成立时间" width="200">
      </el-table-column>
      <el-table-column sortable align="center" prop="companyTypeTitle" label="企业类型" width="200">
      </el-table-column>
      <el-table-column sortable align="center" prop="operatingState" label="经营状态" width="200">
      </el-table-column>
      <el-table-column sortable align="center" prop="registeredCapital" label="注册资本" width="200">
      </el-table-column>
      <el-table-column sortable align="center" prop="registeredAddress" label="注册地址" width="200">
      </el-table-column>
      <el-table-column sortable align="center" prop="businessTerm" label="营业期限" width="200">
      </el-table-column>
      <el-table-column sortable align="center" prop="address.province.title" label="所属地区" width="200">
      </el-table-column>

      <el-table-column sortable align="center" prop="unifiedSocialCreditCode" label="统一社会信用代码" width="200">
      </el-table-column>
      <el-table-column sortable align="center" prop="dateOfApproval" label=" 核准日期" width="200">
      </el-table-column>
      <el-table-column sortable align="center" prop="onceName" label="曾用名" width="150">
      </el-table-column>
      <el-table-column sortable align="center" prop="registrationAuthority" label="登记机关" width="200">
      </el-table-column>
      <el-table-column sortable align="center"  prop="subordinateToIndustry" label="所属行业" width="200">
      </el-table-column>
      <el-table-column sortable align="center" prop="scopeBusiness" label="经营范围" width="200">
      </el-table-column>
      <el-table-column sortable align="center" prop="companyBlackCount" label="拉黑次数" width="150">
      </el-table-column>
      <el-table-column align="center" sortable prop="isBlack" label="是否拉黑" width="150">
      </el-table-column>
      <el-table-column align="center" label="操作" min-width="400">
        <template slot-scope="scope">
          <el-button size="mini" @click="handleEditcom(scope.$index, scope.row)">预览工商信息</el-button>
          <el-button size="mini" @click="handleEdit(scope.$index, scope.row)">编辑</el-button>
          <el-button size="mini" type="danger" @click="deleteUser(scope.$index, scope.row)">删除</el-button>
            <el-button size="mini" type="danger" @click="resetpasswords(scope.row)">重置密码</el-button>
        </template>
      </el-table-column>

    </el-table>
    <!-- 分页组件 -->
        <Pagination v-bind:child-msg="pageparm" @callFather="callFather"></Pagination>
    <!-- 编辑界面 -->
    <el-dialog :title="title" :visible.sync="editFormVisible" width="30%" @click="closeDialog">
      <el-form label-width="120px" :model="editForm" :rules="rules" ref="editForm">
        <el-form-item label="公司账号" prop="companyAccount">
          <el-input size="small" v-model="editForm.companyAccount" auto-complete="off" placeholder="请输入公司账号"></el-input>
        </el-form-item>
        <el-form-item label="公司邮箱" prop="companyEmail">
          <el-input size="small" v-model="editForm.companyEmail" auto-complete="off" placeholder="请输入公司邮箱"></el-input>
        </el-form-item>
        <el-form-item label="公司负责人" prop="contactPerson">
          <el-input size="small" v-model="editForm.contactPerson" auto-complete="off" placeholder="请输入公司负责人"></el-input>
        </el-form-item>
        <el-form-item label="公司负责人电话" prop="contactPersonTel">
          <el-input size="small" v-model="editForm.contactPersonTel" auto-complete="off" placeholder="请输入公司负责人电话"></el-input>
        </el-form-item>
        <el-form-item label="公司名称" prop="companyName">
          <el-input size="small" v-model="editForm.companyName" auto-complete="off" placeholder="请输入公司名称"></el-input>
        </el-form-item>
        <el-form-item label="详细地址" prop="detailsaAddress">
          <el-input size="small" v-model="editForm.detailsaAddress" auto-complete="off" placeholder="请输入详细地址"></el-input>
        </el-form-item>
        <el-form-item label="企业编码" prop="companyCode">
          <el-input size="small" v-model="editForm.companyCode" auto-complete="off" placeholder="请输入企业编码"></el-input>
        </el-form-item>
        <el-form-item label="公司简介" prop="companyProfile">
          <el-input size="small" v-model="editForm.companyProfile" auto-complete="off" placeholder="请输入公司简介"></el-input>
        </el-form-item>
        <el-form-item label="人才发展趋向" prop="developmentTrend">
          <el-input size="small" v-model="editForm.developmentTrend" auto-complete="off" placeholder="请输入人才发展趋向"></el-input>
        </el-form-item>

        <el-form-item label="公司规模" prop="companyScale">
          <template>
            <el-select v-model="editForm.companyScale.id" filterable placeholder="请选择">
              <el-option
                v-for="item in editForm.companyScaleList"
                :key="item.id"
                :label="item.title"
                :value="item.id">
              </el-option>
            </el-select>
          </template>
        </el-form-item>


        <el-form-item label="公司行业类型" prop="companyType">
          <template>
            <el-select v-model="editForm.companyType.id" filterable placeholder="请选择">
              <el-option
                v-for="item in editForm.companyTypeList"
                :key="item.id"
                :label="item.title"
                :value="item.id">
              </el-option>
            </el-select>
          </template>
        </el-form-item>

        <el-form-item label="公司地区" prop="address">
          <template>
            <el-cascader v-if="isShowAddressInfo" :props="props" v-model="zid"></el-cascader>
          </template>
        </el-form-item>
      </el-form>

      <div slot="footer" class="dialog-footer">
        <el-button size="small" @click="closeDialog">取消</el-button>
        <el-button size="small" type="primary" :loading="loading" class="title" @click="submitForm('editForm')">保存</el-button>
      </div>
    </el-dialog>
<!--    =============================================================-->
    <el-dialog :title="titles" :visible.sync="editFormVisiblea" width="50%" @click="closeDialog('editForm')">
      <el-form label-width="120px" :model="editForm" ref="editForm">
        <el-row>
          <el-col :span="12">
            <el-form-item label="公司名称">
              <el-input size="small" v-model="editForm.companyName" auto-complete="off" placeholder="请输入商户号" disabled></el-input>
            </el-form-item>
            <el-form-item label="公司编号">
              <el-input size="small" v-model="editForm.id" auto-complete="off" placeholder="请输入名称" disabled></el-input>
            </el-form-item>
            <el-form-item label="公司邮箱">
              <el-input size="small" v-model="editForm.companyEmail" auto-complete="off" placeholder="请输入商户号" disabled></el-input>
            </el-form-item>
            <el-form-item label="注册时间">
              <el-input size="small" v-model="editForm.companyRegisterTime" auto-complete="off" placeholder="请输入微信子商户" disabled></el-input>
            </el-form-item>
            <el-form-item label="地区">
              <el-input size="small" v-model="editForm.address.title" auto-complete="off" placeholder="请输入通知回调" disabled></el-input>
            </el-form-item>
            <el-form-item label="企业编码">
              <el-input size="small" v-model="editForm.companyCode" auto-complete="off" placeholder="请输入加密类型" disabled></el-input>
            </el-form-item>
            <el-form-item label="经营范围">
              <el-input size="small" v-model="editForm.scopeBusiness" auto-complete="off" placeholder="请输入微信子商户" disabled></el-input>
            </el-form-item>
          </el-col>
          <el-col :span="12">
            <el-form-item label="法定代表人">
              <el-input size="small" v-model="editForm.legalRepresentative" auto-complete="off" placeholder="请输入商户签名密钥" disabled></el-input>
            </el-form-item>
            <el-form-item label="成立时间">
              <el-input size="small" v-model="editForm.setUpTime" auto-complete="off" placeholder="请输入支付宝卖家" disabled></el-input>
            </el-form-item>
            <el-form-item label="企业名称">
              <el-input size="small" v-model="editForm.firmName" auto-complete="off" placeholder="请输入支付宝卖家" disabled></el-input>
            </el-form-item>
            <el-form-item label="详细地址">
              <el-input size="small" v-model="editForm.detailsaAddress" auto-complete="off" placeholder="请输入应用ID" disabled></el-input>
            </el-form-item>
            <el-form-item label="企业类型">
              <el-input size="small" v-model="editForm.companyTypeTitle" auto-complete="off" placeholder="请输入名称" disabled></el-input>
            </el-form-item>
            <el-form-item label="登记机关">
              <el-input size="small" v-model="editForm.registrationAuthority" auto-complete="off" placeholder="请输入商户号" disabled></el-input>
            </el-form-item>
            <el-form-item label="所属行业">
              <el-input size="small" v-model="editForm.subordinateToIndustry" auto-complete="off" placeholder="请输入商户号" disabled></el-input>
            </el-form-item>
          </el-col>

        </el-row>
        <el-form-item label="备注">
          <el-input size="small" v-model="editForm.remark" auto-complete="off" placeholder="请输入微信证书路径" disabled></el-input>
        </el-form-item>
      </el-form>
    </el-dialog>
  </div>
</template>

<script>
  import { deptList, deptSave, deptDelete } from '../../api/userMG'
  import Pagination from '../../components/Pagination'
  export default {
    data() {
      return {
        isShowAddressInfo:false,
        zid:[],
        nshow: true, //switch开启
        fshow: false, //switch关闭
        loading: false, //是显示加载
        editFormVisible: false, //控制编辑页面显示与隐藏
        editFormVisiblea:false,
        title: '添加',
        titles: '工商信息',
        value1:'',
        props: {
          lazy: true,
          lazyLoad:this.lazyLoad,
        },
        editForm: {
          id: '',
          //公司账号
          companyAccount:'',
          //公司密码
          companyPassword:'',
          //公司负责人
          contactPerson:'',
          //公司负责人电话
          contactPersonTel:'',
          //公司名称
          companyName:'',
          //公司邮箱
          companyEmail:'',
          // 注册时间
          companyRegisterTime:'',
          //与官方合作时间
          contractExpirationDate:'',
          // //经度
          // longitude:'',
          // //维度
          // latitude:'',
          //地区id
          addressId:'',
          // 详细地址
          detailsaAddress:'',
          // 公司电话
          companyTel:'',
          // 企业编码
          companyCode:'',
          //公司简介
          companyProfile:'',
          // 公司相关logo
          companyPic:'',
          // 公司规模id
           companyScaleId:'',
          //公司类型
          //人才发展趋向
          developmentTrend:'',
          //企业名称
          firmName:'',
          //法定代表人
          legalRepresentative:'',
          // 公司行业类型id
          companyTypeId:'',
          // 成立时间
          setUpTime:'',
          //企业类型
          companyTypeTitle:'',
          //经营状态
          operatingState:'',
          // 注册资本
          registeredCapital:'',
          // 注册地址
          registeredAddress:'',
          //营业期限
          businessTerm:'',
          // 所属地区
          eachDistrict:'',
          //统一社会信用代码
          unifiedSocialCreditCode:'',
          //核准日期（管理员通过时间）
          dateOfApproval:'',
          // 曾用名
          onceName:'',
          // 登记机关
          registrationAuthority:'',
          // 所属行业
          subordinateToIndustry:'',
          // 经营范围
          scopeBusiness:'',
          // 拉黑次数
          companyBlackCount:'',
          // 是否拉黑
          isBlack:'',
          //类型
          companyType:{},
          companyTypeList:[],
          address:'',
          company:{},
          //地区
          addressList:[],
          //规模
          companyScale:{},
          companyScaleList:[],
          value1:'',



          //oken: loca
          // lStorage.getItem('logintoken')
        },
        // rules表单验证
        rules: {
          companyAccount :[{required:true, message: '请输入公司账号', trigger: 'blur' }],
          companyPassword:[{required:true, message: '请输入公司密码', trigger: 'blur' }],
          contactPerson:[{required:true, message: '请输入公司负责人', trigger: 'blur' }],
          companyEmail:[{required:true, message: '请输入公司邮箱', trigger: 'blur' }],
          contactPersonTel:[{required:true, message: '请输入公司负责人电话', trigger: 'blur' }],
          companyName:[{required:true, message: '请输入公司名称', trigger: 'blur' }],
          longitude:[{required:true, message: '请输入公司经度', trigger: 'blur' }],
          latitude:[{required:true, message: '请输入公司纬度', trigger: 'blur' }],
          detailsaAddress:[{required:true, message: '请输入详细地址', trigger: 'blur' }],
          companyCode:[{required:true, message: '请输入企业编码', trigger: 'blur' }],
          companyProfile:[{required:true, message: '请输入公司简介', trigger: 'blur' }],
          developmentTrend:[{required:true, message: '请输入人才发展趋向', trigger: 'blur' }],
          firmName:[{required:true, message: '请输入企业名称', trigger: 'blur' }],
          legalRepresentative:[{required:true, message: '请输入法定代表人', trigger: 'blur' }],
          companyTypeTitle:[{required:true, message: '请输入企业类型', trigger: 'blur' }],
          registeredCapital:[{required:true, message: '请输入注册资本', trigger: 'blur' }],
          registeredAddress:[{required:true, message: '请输入注册地址', trigger: 'blur' }],
          businessTerm:[{required:true, message: '请输入营业期限', trigger: 'blur' }],
          eachDistrict:[{required:true,message: '请输入所属地区', trigger: 'blur' }],
          unifiedSocialCreditCode:[{required:true, message: '请输入社会信用代码', trigger: 'blur' }],
          subordinateToIndustry:[{required:true, message: '请输入所属行业', trigger: 'blur' }],
          registrationAuthority:[{required:true, message: '请输入登记机关', trigger: 'blur' }],
          companyTel:[{required:true, message: '请输入公司电话', trigger: 'blur' }],
          // companyType:[{required:true, message: '请输入公司行业类型id', trigger: 'blur' }],

        },

        formInline: {
          page: 1,
          limit: 10,
          id: '',
          companyName:'',
          value1:'',


          // token: localStorage.getItem('logintoken')
        },
        // 删除部门
        seletedata: {
          ids: '',
          token: localStorage.getItem('logintoken')
        },
        userparm: [], //搜索权限
        listData: [], //用户数据
        // 分页参数
        pageparm: {
          currentPage: 1,
          pageSize: 10,
          total: 10
        }
      }
    },
    // 注册组件
    components: {
      Pagination
    },
    /**
     * 数据发生改变
     */

    /**
     * 创建完毕
     */
    created() {
      this.getdata(this.formInline)
    },

    /**
     * 里面的方法只有被调用才会执行
     */
    methods: {
      lazyLoad(node, resolve) {
        var {level} = node;
        if(level==0){
          this.$axios.get("http://localhost:8080/manage/company/getProvince",
            {params:{parentId:0}}).then((response)=>{

            var nodes=Array.from(response.data.data).map(item=>({
              value: item.id,
              label: `${item.title}`,
              leaf:level>=2
            }));
            resolve(nodes);
          });
        }else if(level==1||level==2){
          this.$axios.get("http://localhost:8080/manage/company/getProvince",
            {params:{parentId:node.value}}).then((response)=>{




            var nodes=Array.from(response.data.data).map(item=>({
              value: item.id,
              label: `${item.title}`,
              leaf:level>=2
            }));
            resolve(nodes);
          });
        }else{
          resolve(null);
        }


      },

      resetpasswords(row){
        this.$confirm('确定要重置密码吗?', '信息', {
          confirmButtonText: '确定',
          cancelButtonText: '取消',
          type: 'warning'
        })
          .then(() => {
            //this.$axios.post("http://localhost:8080/manage/insert",this.editForm)
            this.$axios.get("http://localhost:8080/manage/company/resetpasswords?id="+row.id)//delete?id="+id
              .then(res => {
                if (res.data) {
                  this.$message({
                    type: 'success',
                    message: '已重置密码!',
                  })
                  this.getdata(this.formInline)

                } else {
                  this.$message({
                    type: 'info',
                    message: res.data.msg
                  })
                }
              })
              .catch(err => {
                this.loading = false
                this.$message.error('重置密码失败，请稍后再试！')
              })
          })
      },
      // 获取公司列表
      getdata(companyName) {
        this.loading = true
        //======================================================================================我写的
        this.$axios.get("http://localhost:8080/manage/company/list",{params:{
            companyName:this.formInline.companyName,
            value1:this.formInline.value1[0],
            value2:this.formInline.value1[1],
            pageNum:this.formInline.page,
            pageSize:this.formInline.limit
          }}).then(res=>{
          this.loading = false
          if (res.data.success == false) {
            this.$message({
              type: 'info',
              message: res.data.msg
            })
          } else {
            this.listData = res.data.data.list;
            // 分页赋值
            this.pageparm.currentPage =  res.data.data.pageNum
            this.pageparm.pageSize =  res.data.data.pageSize
            this.pageparm.total = res.data.data.total
          }
        })
          .catch(err => {
            this.loading = false
            console.log(err)
            this.$message.error('公司加载失败，请稍后再试！')
          })
      },
      // 分页插件事件
      callFather(parm) {
        this.formInline.page = parm.currentPage
        this.formInline.limit = parm.pageSize
        this.getdata(this.formInline)
      },
      // 搜索事件
      search() {
        this.getdata(this.formInline);
      },handleEditcom: function(index, row) {
        this.editFormVisiblea = true
        this.editForm = row
      },

      //显示编辑界面
      handleEdit: function(index, row) {
        this.editFormVisible = true;
        if (row != undefined && row != 'undefined') {
          this.title = '修改'
          this.editForm.id=row.id
          this.editForm.companyAccount = row.companyAccount
          this.editForm.companyPassword = row.companyPassword

          this.editForm.contactPerson = row.contactPerson
          this.editForm.contactPersonTel = row.contactPersonTel
          this.editForm.companyName = row.companyName
          this.editForm.companyEmail = row.companyEmail
          this.editForm.longitude = row.longitude
          this.editForm.latitude = row.latitude
          this.editForm.detailsaAddress = row.detailsaAddress
          this.editForm.companyTel = row.companyTel
          this.editForm.companyCode = row.companyCode
          this.editForm.companyProfile = row.companyProfile
          this.editForm.developmentTrend = row.developmentTrend
          this.editForm.firmName = row.firmName
          this.editForm.legalRepresentative = row.legalRepresentative
          this.editForm.operatingState = row.operatingState
          this.editForm.registeredCapital = row.registeredCapital
          this.editForm.registeredAddress = row.registeredAddress
          this.editForm.businessTerm = row.businessTerm
          this.editForm.eachDistrict = row.eachDistrict
          this.editForm.unifiedSocialCreditCode = row.unifiedSocialCreditCode
          this.editForm.companyTypeTitle = row.companyTypeTitle
          this.editForm.subordinateToIndustry = row.subordinateToIndustry
          this.editForm.registrationAuthority = row.registrationAuthority
          this.editForm.companyEmail = row.companyEmail
          this.editForm.companyTypeId=row.companyTypeId

          this.editForm.addressId=row.addressId
          this.editForm.addressList=row.addressList
          this.editForm.address=row.address
          this.editForm.companyTypeList=row.companyTypeList
          this.editForm.companyType=row.companyType
          this.editForm.companyScaleList=row.companyScaleList
          this.editForm.companyScale=row.companyScale


          this.zid=[
            this.editForm.address.province.id,
            this.editForm.address.city.id,
            this.editForm.address.id
          ]
          // console.log("====================222222222")
          // console.log(this.editForm.address.province.title)



          this.isShowAddressInfo = false;
          // 这里搞个定时器重新载入一下组件就可以触发组件拉取数据
          setTimeout(() => {
            this.isShowAddressInfo = true;
          }, 500);





        } else {
          this.title = '添加'
          this.editForm.id=''
          this.editForm.sort = ''
          this.editForm.title = ''
        }
      },
      // 编辑、增加页面保存方法
      submitForm(formName) {
        //添加
        this.$refs.editForm.validate((valid) => {//editForm
          if (valid) {
            this.editForm.addressId=this.zid[2];
            this.$axios.post("http://localhost:8080/manage/company/updata",this.editForm)

              .then(res=>{
                this.editFormVisible = false
                this.loading = false
                this.getdata();
                if (res.data) {
                  this.getdata(this.formInline)
                  this.$message({
                    type: 'success',
                    message: '添加成功！'
                  })
                } else {
                  this.$message({
                    type: 'info',
                    message: res.data
                  })
                }

              });



          } else {
            return false
          }
        })
      },
      // 删除公司
      deleteUser(index, row) {
        this.$confirm('确定要删除吗?', '信息', {
          confirmButtonText: '确定',
          cancelButtonText: '取消',
          type: 'warning'
        })
          .then(() => {
            //this.$axios.post("http://localhost:8080/manage/insert",this.editForm)
            this.$axios.get("http://localhost:8080/manage/company/delete?id="+row.id)//delete?id="+id
              .then(res => {
                if (res.data) {
                  this.$message({
                    type: 'success',
                    message: '公司已删除!',
                  })
                  this.getdata(this.formInline)

                } else {
                  this.$message({
                    type: 'info',
                    message: res.data.msg
                  })
                }
              })
              .catch(err => {
                this.loading = false
                this.$message.error('公司删除失败，请稍后再试！')
              })
          })
          .catch(() => {
            this.$message({
              type: 'info',
              message: '已取消删除'
            })
          })
      },
      // 关闭编辑、增加弹出框
      closeDialog() {
        this.editFormVisible = false
      }
    }
  }
</script>

<style scoped>
  .user-search {
    margin-top: 20px;
  }
  .userRole {
    width: 100%;
  }
</style>

